package com.gopay.common.constants.bank;

import java.util.HashMap;
import java.util.Map;


/**
 * 银行交互服务 银行业务产品码常量
 * @author liujy
 *
 */
public enum BisBankBusinessProd {

	/** 个人网银支付 */
	_00("00"),
	/** 企业网银支付 */
	_01("01"),
	/** 银行卡协议支付  */
	_02("02"),
	/** 银行卡代收 */
	_03("03"),
	/** 企业代付 */
	_04("04"),

	/** 信用卡快捷支付 */
	_05("05"),
    /**借记卡快捷支付*/
    _15("15"),

	/** 话费充值卡支付 */
	_06("06"),
	/** 跨境人民币支付 */
	_07("07"),
	/** 基金支付 */
	_08("08"),
	/** 银企直连 */
	_09("09"),
	/** 网银付款 **/
	_10("10"),	
	/** 个人WAP网银支付 **/
	_11("11"),
	/** 退款 **/
    _12("12"),
	/** 三方扫码支付 **/
	_16("16"),
	/** 三方APP支付 **/
	_17("17"),
	/** 三方线下扫码支付API **/
	_18("18"),
	/** 通用鉴权**/
	_19("19"),
	/** 委托代收支付**/
	_20("20"),
	/** 直接代收支付*/
	_21("21"),
	/** 三方条码支付**/
	_25("25"),
	/** 三方条码支付撤销*/
	_26("26");
	//注意
	//注意
	//注意
	//在此处添加产品请在getBisBankBusinessProdName方法中一并添加，谢谢

    public final String value;

    private BisBankBusinessProd(String value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return this.value;
    }
    
    /**
     * 根据枚举类型的字符串值 获取 相应的枚举变量
     */
    public static BisBankBusinessProd get(String str) {
    	BisBankBusinessProd[] cs = BisBankBusinessProd.class.getEnumConstants();
        for (BisBankBusinessProd c : cs) {
            if (c.toString().equals(str)) {
            	return c;
            }
        }
        throw new RuntimeException(" wrong " + BisBankBusinessProd.class.getSimpleName() + " string value! " + str);
    }
    
    
    public static String getBisBankBusinessProdName(String str){
    	Map<String, Object> result = new HashMap<String, Object>();
    	result.put("00", "个人网银支付");
    	result.put("01", "企业网银支付");
    	result.put("02", "银行卡协议支付");
    	result.put("03", "银行卡代收");
    	result.put("04", "企业代付");
    	result.put("05", "信用卡快捷支付");
    	result.put("06", "话费充值卡支付");
    	result.put("07", "跨境人民币支付");
    	result.put("08", "基金支付");
    	result.put("09", "银企直连");
    	result.put("10", "网银付款");
    	result.put("11", "个人WAP网银支付");
    	result.put("12", "退款");
    	result.put("15", "借记卡快捷支付");
    	result.put("16", "三方线上扫码支付");
    	result.put("17", "三方APP支付");
    	result.put("18", "三方公众号/生活号支付");
    	result.put("19", "通用鉴权");
    	result.put("20", "委托代收支付");
    	result.put("21", "直接代收支付");
    	result.put("25", "三方条码支付");
    	result.put("26", "三方条码支付撤销");
    	if (str.equals("")){
    		return "";
		}
    	if(result.get(str)==null){
    		throw new RuntimeException(" wrong getBisBankBusinessProdName key and value is null,please put!");
    	}
    	return result.get(str).toString();
    }
}
